#pragma once
class Player;
class OnSpaceState;
class OnWaterState;
class OnGroundState;




enum GO_DIRECTION
{
	LEFT, RIGHT
};
//
enum JUMP_DIRECTION
{
	UP, DOWN
};

enum PLAYER_STATE
{
	ONGROUND, ONSPACE, ONWATER, ONDIE
};

class PlayerState
{
private:
	PlayerState* _state;
protected:
	int KBState;
	GO_DIRECTION gDirection;	
	JUMP_DIRECTION jDirection;
	Player* p;
	float timeDelay;
public:
	
	PlayerState(void);
	~PlayerState(void);
	//virtual void update(float time);
	virtual PLAYER_STATE handleInput() = 0;
	 void setDirection(JUMP_DIRECTION jumpDirection, GO_DIRECTION goDirection);
	 JUMP_DIRECTION getJumpDirection();
	 GO_DIRECTION getGoDirection();
	 bool setDelay(float time);
};

